﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HCQ2_Model.ClassRoom;
using HCQ2_Model.Data;
using HCQ2_Model.ViewModel;

namespace HCQ2_IBLL
{
    /// <summary>
    /// 直播课堂
    /// </summary>
    public partial interface IN_VRLineClassRoomBLL
    {
        /// <summary>
        /// 创建直播课堂
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OperationResult<int?> Create(ClassRoomCreateDto dto);

        /// <summary>
        /// 修改直播课堂
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OperationResult<int?> Update(ClassRoomUpdateDto dto);

        /// <summary>
        /// 删除直播课堂
        /// </summary>
        /// <param name="RmId"></param>
        /// <returns></returns>
        OperationResult Delete(ClassRoomDeleteDto dto);

        /// <summary>
        /// 获取直播课堂列表
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OperationResult<TableModel<List<ClassRoomQueryResultDto>>> List(ClassRoomQueryDto dto);

        /// <summary>
        /// 保存上课用户信息
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OperationResult SaveUserInfo(ClassRoomSaveUserInfoDto dto);

        /// <summary>
        /// 保存直播课堂录播视频
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OperationResult SaveVideo(ClassRoomSaveVideoDto dto);

        /// <summary>
        /// 获取上课人数
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        /// <remarks>
        /// 疑问，文档没有写具体哪一个直播课堂，难道获取所有直播课堂的上课总人数？
        /// </remarks>
        OperationResult<int> GetClassRoomPersonNumber(GetClassRoomPersonNumberQueryDto dto);

        /// <summary>
        /// 获取直播课堂数
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        OperationResult<int> GetClassRoomNumber(GetClassRoomNumberQueryDto dto);
    }
}
